/**
 * 
 */
package com.nari.baseinfo.service;

import com.nari.baseinfo.utils.statisentity.BuildingStatisEntity;
import com.nari.baseinfo.utils.statisentity.CommunityStatisEntity;
import com.nari.baseinfo.utils.statisentity.IGenericStatisEntity;
import com.nari.baseinfo.utils.statisentity.ProjectStatisEntity;
import com.nari.baseinfo.utils.statisentity.RoomStatisEntity;
import com.nari.baseinfo.utils.statisentity.ShareAreaStatisEntity;

/**
 * 
 * @author Xiaopeng
 * @date 2013-10-21
 */
public interface IBaseStatisService {

	/**
	 * 根据统计类型、基础信息ID查询统计实体
	 * @param statisType 统计类型
	 * @param baseUID 基础信息ID
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-21
	 */
	public IGenericStatisEntity queryBaseStatisEntity(Integer statisType, 
			String baseUID) throws Exception;
	
	/**
	 * 通过项目唯一标识查询项目所属统计信息
	 * @param projectUID
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-21
	 */
	public ProjectStatisEntity queryProjectStatisByID(String projectUID) throws Exception;
	
	/**
	 * 根据小区唯一标识查询小区所属统计信息
	 * @param communityUID
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-23
	 */
	public CommunityStatisEntity queryCommunityStatisByID(String communityUID) throws Exception;
	
	/**
	 * 根据楼栋唯一标识查询楼栋所属统计信息
	 * @param buildingUID
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-23
	 */
	public BuildingStatisEntity queryBuildingStatisByID(String buildingUID) throws Exception;
	
	/**
	 * 根据分摊域唯一标识查询分摊域所属统计信息
	 * @param shareAreaUID
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-23
	 */
	public ShareAreaStatisEntity queryShareAreaStatisByID(String shareAreaUID) throws Exception;
	
	/**
	 * 根据热用户唯一标识查询热用户所属统计信息
	 * @param heatRoomUID
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-23
	 */
	public RoomStatisEntity queryRoomStatisByID(String heatRoomUID) throws Exception;
}
